package com.zmn.oms.model.dio.conf.distribute;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 派单产品组
 *
 * @author fubiao
 * @since 2022年03月15日 19:02
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DistributeProductGroupDIO implements Serializable {

    /**
     * 产品组id
     */
    private Integer productGroupId;

    /**
     * 多种产品分组时间对应  {"1108":"08:00 ~ 19:30","1045":"08:00 ~ 19:30","1024":"08:00 ~ 19:30"}
     */
    private String autoTimeProductGroupJson;

    /**
     * 自动派单开始时间 格式：7:00
     */
    private String autoTimeStart;

    /**
     * 自动派单结束时间 格式: 21:30
     */
    private String autoTimeEnd;

    /**
     * 保护基于推荐自动派规则  1 首轮保护  2 多轮保护
     */
    private Integer autoRecommendProtectionType;

    /**
     *  首轮保护，json 格式  Map<ProductGroupId, EngineerLevel>
     */
    private String protectionFirstProductGroupJson;

    /**
     * 多伦普通 - 默认保护次数
     */
    private Integer protectionDefaultTimes;

    /**
     * 多伦普通
     * <br/>每个产品组的 工程师等级的 保护次数
     * 1、老的数据格式：Map<ProductGroupId, Value>
     *      json格式：{"1103":"78","1045":"10","1024":"12"}
     * 2、新的数据格式：Map<ProductGroupId, Map<EngineerLevel, Value>>
     *     工程师等级EngineerLevel：0~10
     *     json格式：{"1013":{"0":"3","1":"3","2":"3","3":"3","4":"3","5":"3","6":"3","7":"3","8":"3","9":"3","10":"3","100",1}}
     *     EngineerLevel=100 时，是默认值
     */
    private String protectionTimesProductGroupJson;

    /**
     *  是否配置了【多轮优先】保护：1.否 2.是
     */
    private Integer priorityProtectionStatus;

    /**
     *  多轮优先 - 默认保护次数
     */
    private Integer priorityProtectionDefaultTimes;

    /**
     * 多伦优先
     * <br/>每个产品组的 工程师等级的 保护次数
     * 1、老的数据格式：Map<ProductGroupId, Value>
     *      json格式：{"1103":"78","1045":"10","1024":"12"}
     * 2、新的数据格式：Map<ProductGroupId, Map<EngineerLevel, Value>>
     *     工程师等级EngineerLevel：0~10
     *     json格式：{"1013":{"0":"3","1":"3","2":"3","3":"3","4":"3","5":"3","6":"3","7":"3","8":"3","9":"3","10":"3","100",1}}
     *     EngineerLevel=100 时，是默认值
     */
    private String priorityProtectionTimesProductGroup;
}
